home *** CD-ROM | disk | FTP | other *** search
/ Amiga Game-Power / Amiga Game-Power.iso / pd mix ii / access / thai / search.c < prev    next >
C/C++ Source or Header  |  1994-05-20  |  1KB  |  73 lines

  1.  
  2. #include "quiz.h"
  3.  
  4. struct thai_phrase *
  5. thai_search ( curr , pattern , direction )
  6. struct thai_phrase *curr;
  7. char *pattern;
  8. int direction;
  9. {
  10.     if ( curr == NULL )
  11.         return ( NULL );
  12.     while ( TRUE ) {
  13.         curr = ( direction == NEXT_ENTRY ) ? curr->next : curr->prev;
  14.         if ( curr == NULL )
  15.             return ( NULL );
  16.         if ( strcmp ( pattern , curr->thai ) == 0 )
  17.             return ( curr );
  18.     }
  19. }
  20.  
  21.  
  22. struct thai_phrase *
  23. phonetic_search ( curr , pattern , direction )
  24. struct thai_phrase *curr;
  25. char *pattern;
  26. int direction;
  27. {
  28.     if ( curr == NULL )
  29.         return ( NULL );
  30.     while ( TRUE ) {
  31.         curr = ( direction == NEXT_ENTRY ) ? curr->next : curr->prev;
  32.         if ( curr == NULL )
  33.             return ( NULL );
  34.         if ( match ( curr->phonetic , pattern ) )
  35.             return ( curr );
  36.     }
  37. }
  38.  
  39.  
  40. struct thai_phrase *
  41. english_search ( curr , pattern , direction )
  42. struct thai_phrase *curr;
  43. char *pattern;
  44. int direction;
  45. {
  46.     if ( curr == NULL )
  47.         return ( NULL );
  48.     while ( TRUE ) {
  49.         curr = ( direction == NEXT_ENTRY ) ? curr->next : curr->prev;
  50.         if ( curr == NULL )
  51.             return ( NULL );
  52.         if ( match ( curr->english , pattern ) )
  53.             return ( curr );
  54.     }
  55. }
  56.  
  57.  
  58. match ( buf , pattern )
  59. char *buf , *pattern;
  60. {
  61.     register int i , j;
  62.  
  63.     for ( i = 0; buf[i] != '\0'; i++ ) {
  64.         for ( j = 0; pattern[j] != '\0'; j++ )
  65.             if ( mklower ( buf[i+j] ) != mklower ( pattern[j] ) )
  66.                 break;
  67.         if ( pattern[j] == '\0' )
  68.             return ( TRUE );
  69.     }
  70.     return ( FALSE );
  71. }
  72.  
  73.